package org.jinghouyu.caculator.engine.expression.function;

import java.util.Random;

import org.jinghouyu.caculator.engine.expression.FunctionExpression;

/**
 * 随机函数,随机出正整数
 * 参数代表类型
 * 第一个参数表示开始数（包括）
 * 第二个参数表示结束数（包括）
 * @author liujingyu
 *
 */
public class RandomFunction extends FunctionExpression {

	public RandomFunction(String name) {
		super(name);
	}

	@Override
	protected Range parameterCount() {
		return new Range(0, 3);
	}

	@Override
	protected Object _caculate_(Object... values) {
		int start = getValue(values, 0) == null ? 0 : (int) getDouble(getValue(values, 0));
		int end = getValue(values, 1) == null ? Integer.MAX_VALUE : (int) getDouble(getValue(values, 1));
		int tmp = start;
		start = Math.min(start, end);
		end = Math.max(tmp, end);
		Random random = new Random();
		int r = random.nextInt(end - start + 1);
		return r + start;
	}
}